﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Marmat.Forms
{
    /// <summary>
    /// 虚拟滚动属性
    /// </summary>
    public class VirtualScrollProperties
    {
        /// <summary>
        /// 获取或设置是否可以在容器上使用滚动条。       
        /// </summary>
        /// <remarks>如果可以使用滚动条，则为真;否则,假的。</remarks>
        [DefaultValue(true)]
        [Category("CatBehavior")]
        [Description("ScrollBarEnableDescr")]
        public bool Enabled { get; set; }

        /// <summary>
        /// 获取或设置移动滚动条以响应大滚动命令的距离。
        /// </summary>
        [DefaultValue(10)]
        [RefreshProperties(RefreshProperties.Repaint)]
        [Category("CatBehavior")]
        [Description("ScrollBarLargeChangeDescr")]
        public int LargeChange { get; set; }

        /// <summary>
        /// 获取或设置可滚动范围的上限。
        /// </summary>
        [DefaultValue(100)]
        [RefreshProperties(RefreshProperties.Repaint)]
        [Category("CatBehavior")]
        [Description("ScrollBarMaximumDescr")]
        public int Maximum { get; set; }

        /// <summary>
        /// 获取或设置可滚动范围的下限。
        /// </summary>
        [DefaultValue(0)]
        [RefreshProperties(RefreshProperties.Repaint)]
        [Category("CatBehavior")]
        [Description("ScrollBarMinimumDescr")]
        public int Minimum { get; set; }

        /// <summary>
        /// 获取或设置移动滚动条以响应小滚动的距离。
        /// </summary>
        [DefaultValue(1)]
        [Category("CatBehavior")]
        [Description("ScrollBarSmallChangeDescr")]
        public int SmallChange { get; set; }

        /// <summary>
        /// 获取或设置表示滚动的当前位置的数值。
        /// </summary>
        [Bindable(true)]
        [DefaultValue(0)]
        [Category("CatBehavior")]
        [Description("ScrollBarValueDescr")]
        public int Value { get; set; }

        /// <summary>
        /// 获取或设置用户是否可以看到滚动条。
        /// </summary>
        [DefaultValue(false)]
        [Category("CatBehavior")]
        [Description("ScrollBarVisibleDescr")]
        public bool Visible { get; set; }
    }
}
